Merged
Conversation
Recent NVVM IR docs (e.g. https://docs.nvidia.com/cuda/archive/13.0.0/nvvm-ir-spec/index.html#data-layout) mention four data layouts, which I will abbreviate as: - 64-bit-with-128-bit-integers - 32-bit-with-128-bit-integers - 64-bit-without-128-bit-integers - 32-bit-without-128-bit-integers These docs have said the same thing for every CUDA version from 12.0 to 13.0: - 64-bit-with-128-bit-integers is "supported". - The others are "deprecated and will be removed in a future release". We currently use 64-bit-without-128-bit integers. This works fine on CUDA 12.8, but doesn't work on CUDA 13.0 -- libNVVM spits out "DataLayoutError: Unsupported integer alignment". Even though the docs haven't changed, 13.0 seems to be the first version actually enforcing the deprecation. (Or maybe "deprecated" has become "removed" and the docs haven't caught up, given that there's no apparent way to avoid the error.) This commit changes our data layout from 64-bit-without-128-bit-integers to 64-bit-with-128-bit-integers. This lets commands like `cargo run -p compiletests -- --target-arch compute_75` run successfully on my ASUS GX10 with CUDA 13.0. There appear to be no ill side-effects.
Contributor
|
Interesting, I guess they polyfill in software for older hardware without i128 support 🤔 |
Closed
LegNeato
approved these changes
Nov 20, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Recent NVVM IR docs (e.g.
https://docs.nvidia.com/cuda/archive/13.0.0/nvvm-ir-spec/index.html#data-layout) mention four data layouts, which I will abbreviate as:
These docs have said the same thing for every CUDA version from 12.0 to 13.0:
We currently use 64-bit-without-128-bit integers. This works fine on CUDA 12.8, but doesn't work on CUDA 13.0 -- libNVVM spits out "DataLayoutError: Unsupported integer alignment". Even though the docs haven't changed, 13.0 seems to be the first version actually enforcing the deprecation. (Or maybe "deprecated" has become "removed" and the docs haven't caught up, given that there's no apparent way to avoid the error.)
This commit changes our data layout from 64-bit-without-128-bit-integers to 64-bit-with-128-bit-integers. This lets commands like
cargo run -p compiletests -- --target-arch compute_75run successfully on my ASUS GX10 with CUDA 13.0. There appear to be no ill side-effects.